 
package com.xbongbong.paas.domain.dao;

import com.xbongbong.paas.domain.entity.PaasProcessTemplateNodeEntity;
import com.xbongbong.paas.domain.entity.ext.PaasFormDataEntityExt;
import com.xbongbong.paas.domain.entity.ext.PaasProcessTemplateNodeEntityExt;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;
import java.util.Map;


/**
* @author autoGen
* @time 2018-08-13 10:41:00
*/
@Repository
@Mapper
public interface PaasProcessTemplateNodeDao {

	 
	Integer insert(PaasProcessTemplateNodeEntity paasProcessTemplateNode);
	Integer update(PaasProcessTemplateNodeEntity paasProcessTemplateNode);

	/**
	 * 批量插入
	 * @param paasProcessTemplateNodeList
	 * @return
	 */
	void insertBatch(@Param("list") List<PaasProcessTemplateNodeEntityExt> paasProcessTemplateNodeList);
	
	Integer deleteByKey(@Param("key") Integer key, @Param("corpid") String corpid);

	PaasProcessTemplateNodeEntityExt getByKey(@Param("key") Integer key, @Param("corpid") String corpid);
	
	
	List<PaasProcessTemplateNodeEntityExt> findEntitys(@Param("param") Map<String, Object> param);
	Integer getEntitysCount(@Param("param") Map<String, Object> param);

	/**
	 * 批量更新
	 * @param nodeEntityUpdateList
	 * @param corpid
	 * @return
	 */
	Integer updateBatch(@Param("list") List<PaasProcessTemplateNodeEntityExt> nodeEntityUpdateList, @Param("corpid") String corpid);

	/**
	 * 批量删除
	 * @param nodeEntityUpdateList
	 * @param corpid
	 * @return
	 */
	Integer deleteBatch(@Param("list") List<PaasProcessTemplateNodeEntityExt> nodeEntityUpdateList, @Param("corpid") String corpid);

	/**
	 * 根据节点id列表查询节点数据
	 * @param list
	 * @param param
	 * @return
	 */
    List<PaasProcessTemplateNodeEntityExt> findEntitysByNodeList(@Param("list")List<PaasFormDataEntityExt> list,@Param("param") Map<String, Object> param);
	
	/**
	 * 批量更新,不对外提供，现在只对提供脚本修复
	 * @param nodeEntityUpdateList
	 * @return
	 */
	Integer updateBatchById(@Param("list") List<PaasProcessTemplateNodeEntityExt> nodeEntityUpdateList);

	/**
	 * 根据表单id删除数据
	 * @param formId
	 * @param corpid
	 * @return
	 */
	Integer deleteByFormId(@Param("formId") Long formId, @Param("corpid") String corpid);
}